_CM_KCB_UOW

//0x40 bytes (sizeof) struct _CM_KCB_UOW { struct _LIST_ENTRY TransactionListEntry; //0x0 struct _CM_INTENT_LOCK* KCBLock; //0x8 struct _CM_INTENT_LOCK* KeyLock; //0xc struct _LIST_ENTRY KCBListEntry; //0x10 struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; //0x18 struct _CM_TRANS* Transaction; //0x1c ULONG UoWState; //0x20 enum UoWActionType ActionType; //0x24 enum HSTORAGE_TYPE StorageType; //0x28 struct _CM_KCB_UOW* ParentUoW; //0x2c union { struct _CM_KEY_CONTROL_BLOCK* ChildKCB; //0x30 ULONG VolatileKeyCell; //0x30 struct { ULONG OldValueCell; //0x30 ULONG NewValueCell; //0x34 }; ULONG UserFlags; //0x30 union _LARGE_INTEGER LastWriteTime; //0x30 struct { struct _CM_KEY_SECURITY_CACHE* TxCachedSecurity; //0x30 ULONG TxSecurityCell; //0x34 }; struct { struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; //0x30 struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; //0x34 }; struct { struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; //0x30 ULONG ThisVolatileKeyCell; //0x34 }; }; union { VOID* PrepareDataPointer; //0x38 struct _CM_UOW_SET_SD_DATA* SecurityData; //0x38 struct _CM_UOW_KEY_STATE_MODIFICATION* ModifyKeysData; //0x38 struct _CM_UOW_SET_VALUE_LIST_DATA* SetValueData; //0x38 }; union { struct _CM_UOW_SET_VALUE_KEY_DATA* ValueData; //0x3c struct _CMP_DISCARD_AND_REPLACE_KCB_CONTEXT* DiscardReplaceContext; //0x3c }; };